#ifndef _Util_ENGINE_PRIMITIVE_SHAPE_H_
#define _Util_ENGINE_PRIMITIVE_SHAPE_H_

#include <Util/Basic/Element.h>
#include <Util/Basic/UGM/BBox.h>

namespace Util {
	namespace Engine {
		class Primitive;

		class Shape : public Basic::Element {
		protected:
			Shape() = default;
			virtual ~Shape() = default;

		public:
			virtual const BBoxf GetBBox() const = 0;
			virtual const Basic::Ptr<Primitive> GetPrimitive() = 0;
		};
	}

	using EShape = Engine::Shape;
}

#endif // !_Util_ENGINE_PRIMITIVE_SHAPE_H_
